﻿namespace UnityEditor
{
    using System;
    using System.Collections.Generic;
    using UnityEngine;

    internal interface ITreeViewDataSource
    {
        bool CanBeMultiSelected(TreeView.Node node);
        bool CanBeParent(TreeView.Node node);
        TreeView.Node FindNodeByID(int instanceID);
        int[] GetExpandedInstanceIDs();
        List<TreeView.Node> GetVisibleRows();
        bool HasFakeNode();
        void InsertFakeNode(int instanceID, int parentInstanceID, string name, Texture2D icon);
        bool IsExpandable(TreeView.Node node);
        bool IsExpanded(TreeView.Node node);
        bool IsRenamingNodeAllowed(TreeView.Node node);
        void ReloadData();
        void RemoveFakeNode();
        void SetExpanded(TreeView.Node node, bool expand);
        void SetExpandedInstanceIDs(int[] instanceIDs);
        void SetExpandedWithChildren(TreeView.Node node, bool expand);
    }
}

